﻿using System.Threading;
using Model;

namespace Controller
{
    public class Auktionarious
    {
        //Variabler
        private const int Port = 12345;

        private Auktion _auktion;
        private readonly Server _server;

        //Konstruktør
        public Auktionarious()
        {
            LoadAuktion();
            _server = new Server(Port, _auktion);
            _auktion.d_budhandler += AuktionAfsluttet;
        }

        //Start metode tilat starte en ny tråd, som benytter startmetoden på selve serveren
        public void Start()
        {
            new Thread(_server.Start).Start();
        }

        //Denne metode er til at checke om det 3. hammerslag er gået på auktionen. Er dette sket, så skal serveren's Stop metode benyttes som lukker serveren
        public void AuktionAfsluttet(string besked, string ip, int gældendeBud)
        {
            if (besked == "3. HammerSlag, Solgt!!!!")
            {
                _server.Stop();
            }
        }

        //Denne metode hedder LoadAuktion fordi den var bygger op imod at man skulle hente auktioner op fra en database
        // Den gør dog stadig ca. det samme da den nu bare opretter i stedet for at hente
        private void LoadAuktion()
        {
            Vare vare = new Vare("dvd samling", 100, "Dette er en dvd samling",1);
            _auktion = new Auktion(vare);
        }


        //Get- Set- Metode
        public bool Running
        { get { return _server.Running; } }
    }
}
